/*该文件用来熟悉系统调用接口，并尝试模拟实现C接口*/


#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

//
//int main()
//{
//  //该种方式错误，但flags传入O_CREAT时，一定要有第三个参数（设置权限）
//  //int fd = open("log.txt", O_WRONLY | O_CREAT);
//  
//  
//  int fd = open("log.txt", O_WRONLY | O_CREAT,0600);
//  if (fd == -1)
//  {
//    perror("log.txt");
//    return 1;
//  }
//  return 0;
//}



//下面的指针和结构体都是linux内核里的，并不是头文件里的，所以用这些指针和结构体会报错
//int main()
//{
//  file* stdoutt = fd_array[1];
// 
//  task_struct
//
//  return 0;
//}





//追加重定向：将输出重定向中的O_TRUNC（清空）改为O_APPEND
int main()
{
  close(1);
  int fd = open("log.txt", O_CREAT | O_APPEND | O_WRONLY, 0666);
  fprintf(stdout, "hello, I am append\n");
  return 0;
}
